package com.qf.controller;

import com.qf.entity.Emp;
import com.qf.service.EmpService;
import com.qf.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

/**
 * --- ONE PIECE ---
 *
 * @author yangjiangcheng
 * @date 2025/8/9
 * @desc
 */
@RestController
public class Demo2Controller {
    @Autowired
    private EmpService empService;
    /**
     * 根据empno查询员工信息
     */
    @GetMapping("/emp/{empno}")
    public R findEmpByEmpno(@PathVariable int empno){
        Emp emp = empService.findEmpByEmpno(empno);
        if (emp == null) {
            return R.fail(5000,"查无此人");
        }
        return R.success(emp);
    }

    /**
     * 无条件查询全部
     */
    @GetMapping("/emp/list")
    public R empList(){
        List<Emp> list = empService.list();
        return R.success(list);
    }

    /**
     * 多参数查询
     * 比如 通过员工号和员工名
     */
    @GetMapping("/emp/login")
    public R loginEmpnameAndNo(int empno,String ename){
        Emp emp =  empService.loginEmpnameAndNo(empno,ename);
        return R.success(emp);
    }

    /**
     * 通过map实现多参数模糊查询
     */
    @GetMapping("/emp/search")
    public R listByMap(@RequestParam Map<String,String> map){
        System.out.println("Controller接收前端发送的数据: " + map);
        List<Emp> list = empService.listByMap(map);
        return R.success(list);
    }

    /**
     * 增加员工信息
     */
    @GetMapping("/emp/add")
    public R empAdd(Emp emp){
        int i = empService.empAdd(emp);
        if (i > 0) {
            return R.success("tjcg");
        }
        return R.fail();
    }

    /**
     * 修改员工信息,根据员工号修改
     */
    @GetMapping("/emp/update")
    public R empUpdate(Emp emp){
        int i = empService.empUpdate(emp);
        if (i > 0) {
            return R.success("gxcg");
        }
        return R.fail();
    }

    /**
     * 删除员工信息,根据员工删除
     */
    @GetMapping("/emp/delete")
    public R empDelete(int empno){
        int i = empService.empDelete(empno);
        if (i > 0) {
            return R.success("sccg");
        }
        return R.fail();
    }


}
